package cn.me.alphamq.broker.store;

import java.util.concurrent.atomic.LongAdder;

/**
 * 版本号的持有者
 *
 * @author f
 */
public class VersionHolder {

    /**
     * 版本号，在将消息持久化到文件中后会自增，用于在 主节点 宕机后在 从节点 中选举出新的 主节点
     */
    private static final LongAdder VERSION = new LongAdder();

    static {
        // 初始版本为 1
        VERSION.increment();
    }

    /**
     * 在 将消息持久化到文件中 后，自增版本号
     */
    public static void inc() {
        VERSION.increment();
    }

    /**
     * 获取版本号
     *
     * @return 版本号
     */
    public static long getVersion() {
        return VERSION.sum();
    }
}
